package cn.rkylin.oms.item.domain.taobao;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;

import cn.rkylin.oms.common.base.BaseEntity;

/**
 * 商品实体
 * 
 * @author 季鹏程
 * @version 1.0
 * @created 2017.02.13
 */
public class TopItem extends BaseEntity {
	private static final long serialVersionUID = -7757282402265353495L;

	/**
	 * 商品Id
	 */
	private String topItemId;

	/**
	 * 商品数字id
	 */
	private Long numIid;

	/**
	 * 商品所属的叶子类目
	 */
	private Long cid;

	/**
	 * 商品所属的店铺内卖家自定义类目列表
	 */
	private String sellerCids;

	/**
	 * 商品属性
	 */
	private String props;

	/**
	 * 用户自行输入的类目属性ID串
	 */
	private String inputPids;

	/**
	 * 用户自行输入的子属性名和属性值
	 */
	private String inputStr;

	/**
	 * 商品主图片地址
	 */
	private String picUrl;

	/**
	 * 商品数量
	 */
	private Integer num;

	/**
	 * 上架时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date listTime;

	/**
	 * 下架时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date delistTime;

	/**
	 * 商品新旧程度
	 */
	private String stuffStatus;

	/**
	 * 支持会员打折
	 */
	private Integer hasDiscount;

	/**
	 * 运费承担方式
	 */
	private String freightPayer;

	/**
	 * 支持会员打折
	 */
	private Integer hasInvoice;

	/**
	 * 是否有保修
	 */
	private Integer hasWarranty;

	/**
	 * 橱窗推荐
	 */
	private Integer hasShowcase;

	/**
	 * 商品修改时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date modified;

	/**
	 * 加价幅度
	 */
	private String increment;

	/**
	 * 商品上传后的状态
	 */
	private String approveStatus;

	/**
	 * 宝贝所属的运费模板ID
	 */
	private Long postageId;

	/**
	 * 宝贝所属产品的id
	 */
	private Long productId;

	/**
	 * 虚拟商品的状态字段
	 */
	private Integer isVirtual;

	/**
	 * 是否在淘宝显示
	 */
	private Integer isTaobao;

	/**
	 * 是否在外部网店显示
	 */
	private Integer isEx;

	/**
	 * 是否是3D淘宝的商品
	 */
	private Integer is3d;

	/**
	 * 是否淘1站商品
	 */
	private Integer oneStation;

	/**
	 * 秒杀商品类型
	 */
	private String secondKill;

	/**
	 * 商品是否违规
	 */
	private Integer violation;

	/**
	 * 商品标题
	 */
	private String title;

	/**
	 * 卖家昵称
	 */
	private String nick;

	/**
	 * 商品类型
	 */
	private String type;

	/**
	 * 商品的积分返点比例
	 */
	private Integer auctionPoint;

	/**
	 * 属性值别名
	 */
	private String propertyAlias;

	/**
	 * 宝贝特征值
	 */
	private String features;

	/**
	 * 预扣库存
	 */
	private Integer withHoldQuantity;

	/**
	 * 商品卖点信息
	 */
	private String sellPoint;

	/**
	 * 有效期
	 */
	private Integer validThru;

	/**
	 * 商家外部编码
	 */
	private String outerId;

	/**
	 * 代充商品类型
	 */
	private String autoFill;

	/**
	 * 商品描述模块化
	 */
	private String descModules;

	/**
	 * 定制工具Id
	 */
	private String customMadeTypeId;

	/**
	 * 是否为达尔文挂接成功了的商品
	 */
	private Integer isCspu;

	/**
	 * 商品资质的信息
	 */
	private String qualification;

	/**
	 * 商品价格
	 */
	private BigDecimal price;

	/**
	 * 平邮费用
	 */
	private BigDecimal postFee;

	/**
	 * 快递费用
	 */
	private BigDecimal expressFee;

	/**
	 * ms费用
	 */
	private BigDecimal emsFee;

	/**
	 * 全球购商品采购地信息（库存类型）
	 */
	private String globalStockType;

	/**
	 * 全球购商品采购地信息（地区/国家）
	 */
	private String globalStockCountry;

	/**
	 * 全球购商品发货地
	 */
	private String globalStockDeliveryPlace;

	/**
	 * 全球购商品发货地
	 */
	private Integer globalStockTaxFreePromise;

	/**
	 * 创建时间
	 */
	private Date createTime;

	/**
	 * 修改时间
	 */
	private Date updateTime;

	/**
	 * 是否删除
	 */
	private String deleted;

	/**
	 * 商品描述
	 */
	private String desc;

	/**
	 * SKU集合
	 */
	private List<TopSku> topSkuList;

	public String getTopItemId() {
		return topItemId;
	}

	public void setTopItemId(String topItemId) {
		this.topItemId = topItemId == null ? null : topItemId.trim();
	}

	public Long getNumIid() {
		return numIid;
	}

	public void setNumIid(Long numIid) {
		this.numIid = numIid;
	}

	public Long getCid() {
		return cid;
	}

	public void setCid(Long cid) {
		this.cid = cid;
	}

	public String getSellerCids() {
		return sellerCids;
	}

	public void setSellerCids(String sellerCids) {
		this.sellerCids = sellerCids == null ? null : sellerCids.trim();
	}

	public String getProps() {
		return props;
	}

	public void setProps(String props) {
		this.props = props == null ? null : props.trim();
	}

	public String getInputPids() {
		return inputPids;
	}

	public void setInputPids(String inputPids) {
		this.inputPids = inputPids == null ? null : inputPids.trim();
	}

	public String getInputStr() {
		return inputStr;
	}

	public void setInputStr(String inputStr) {
		this.inputStr = inputStr == null ? null : inputStr.trim();
	}

	public String getPicUrl() {
		return picUrl;
	}

	public void setPicUrl(String picUrl) {
		this.picUrl = picUrl == null ? null : picUrl.trim();
	}

	public Integer getNum() {
		return num;
	}

	public void setNum(Integer num) {
		this.num = num;
	}

	public Date getListTime() {
		return listTime;
	}

	public void setListTime(Date listTime) {
		this.listTime = listTime;
	}

	public Date getDelistTime() {
		return delistTime;
	}

	public void setDelistTime(Date delistTime) {
		this.delistTime = delistTime;
	}

	public String getStuffStatus() {
		return stuffStatus;
	}

	public void setStuffStatus(String stuffStatus) {
		this.stuffStatus = stuffStatus == null ? null : stuffStatus.trim();
	}

	public Integer getHasDiscount() {
		return hasDiscount;
	}

	public void setHasDiscount(Integer hasDiscount) {
		this.hasDiscount = hasDiscount;
	}

	public String getFreightPayer() {
		return freightPayer;
	}

	public void setFreightPayer(String freightPayer) {
		this.freightPayer = freightPayer == null ? null : freightPayer.trim();
	}

	public Integer getHasInvoice() {
		return hasInvoice;
	}

	public void setHasInvoice(Integer hasInvoice) {
		this.hasInvoice = hasInvoice;
	}

	public Integer getHasWarranty() {
		return hasWarranty;
	}

	public void setHasWarranty(Integer hasWarranty) {
		this.hasWarranty = hasWarranty;
	}

	public Integer getHasShowcase() {
		return hasShowcase;
	}

	public void setHasShowcase(Integer hasShowcase) {
		this.hasShowcase = hasShowcase;
	}

	public Date getModified() {
		return modified;
	}

	public void setModified(Date modified) {
		this.modified = modified;
	}

	public String getIncrement() {
		return increment;
	}

	public void setIncrement(String increment) {
		this.increment = increment == null ? null : increment.trim();
	}

	public String getApproveStatus() {
		return approveStatus;
	}

	public void setApproveStatus(String approveStatus) {
		this.approveStatus = approveStatus == null ? null : approveStatus.trim();
	}

	public Long getPostageId() {
		return postageId;
	}

	public void setPostageId(Long postageId) {
		this.postageId = postageId;
	}

	public Long getProductId() {
		return productId;
	}

	public void setProductId(Long productId) {
		this.productId = productId;
	}

	public Integer getIsVirtual() {
		return isVirtual;
	}

	public void setIsVirtual(Integer isVirtual) {
		this.isVirtual = isVirtual;
	}

	public Integer getIsTaobao() {
		return isTaobao;
	}

	public void setIsTaobao(Integer isTaobao) {
		this.isTaobao = isTaobao;
	}

	public Integer getIsEx() {
		return isEx;
	}

	public void setIsEx(Integer isEx) {
		this.isEx = isEx;
	}

	public Integer getIs3d() {
		return is3d;
	}

	public void setIs3d(Integer is3d) {
		this.is3d = is3d;
	}

	public Integer getOneStation() {
		return oneStation;
	}

	public void setOneStation(Integer oneStation) {
		this.oneStation = oneStation;
	}

	public String getSecondKill() {
		return secondKill;
	}

	public void setSecondKill(String secondKill) {
		this.secondKill = secondKill == null ? null : secondKill.trim();
	}

	public Integer getViolation() {
		return violation;
	}

	public void setViolation(Integer violation) {
		this.violation = violation;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title == null ? null : title.trim();
	}

	public String getNick() {
		return nick;
	}

	public void setNick(String nick) {
		this.nick = nick == null ? null : nick.trim();
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type == null ? null : type.trim();
	}

	public Integer getAuctionPoint() {
		return auctionPoint;
	}

	public void setAuctionPoint(Integer auctionPoint) {
		this.auctionPoint = auctionPoint;
	}

	public String getPropertyAlias() {
		return propertyAlias;
	}

	public void setPropertyAlias(String propertyAlias) {
		this.propertyAlias = propertyAlias == null ? null : propertyAlias.trim();
	}

	public String getFeatures() {
		return features;
	}

	public void setFeatures(String features) {
		this.features = features == null ? null : features.trim();
	}

	public Integer getWithHoldQuantity() {
		return withHoldQuantity;
	}

	public void setWithHoldQuantity(Integer withHoldQuantity) {
		this.withHoldQuantity = withHoldQuantity;
	}

	public String getSellPoint() {
		return sellPoint;
	}

	public void setSellPoint(String sellPoint) {
		this.sellPoint = sellPoint == null ? null : sellPoint.trim();
	}

	public Integer getValidThru() {
		return validThru;
	}

	public void setValidThru(Integer validThru) {
		this.validThru = validThru;
	}

	public String getOuterId() {
		return outerId;
	}

	public void setOuterId(String outerId) {
		this.outerId = outerId == null ? null : outerId.trim();
	}

	public String getAutoFill() {
		return autoFill;
	}

	public void setAutoFill(String autoFill) {
		this.autoFill = autoFill == null ? null : autoFill.trim();
	}

	public String getDescModules() {
		return descModules;
	}

	public void setDescModules(String descModules) {
		this.descModules = descModules == null ? null : descModules.trim();
	}

	public String getCustomMadeTypeId() {
		return customMadeTypeId;
	}

	public void setCustomMadeTypeId(String customMadeTypeId) {
		this.customMadeTypeId = customMadeTypeId == null ? null : customMadeTypeId.trim();
	}

	public Integer getIsCspu() {
		return isCspu;
	}

	public void setIsCspu(Integer isCspu) {
		this.isCspu = isCspu;
	}

	public String getQualification() {
		return qualification;
	}

	public void setQualification(String qualification) {
		this.qualification = qualification == null ? null : qualification.trim();
	}

	public BigDecimal getPrice() {
		return price;
	}

	public void setPrice(BigDecimal price) {
		this.price = price;
	}

	public BigDecimal getPostFee() {
		return postFee;
	}

	public void setPostFee(BigDecimal postFee) {
		this.postFee = postFee;
	}

	public BigDecimal getExpressFee() {
		return expressFee;
	}

	public void setExpressFee(BigDecimal expressFee) {
		this.expressFee = expressFee;
	}

	public BigDecimal getEmsFee() {
		return emsFee;
	}

	public void setEmsFee(BigDecimal emsFee) {
		this.emsFee = emsFee;
	}

	public String getGlobalStockType() {
		return globalStockType;
	}

	public void setGlobalStockType(String globalStockType) {
		this.globalStockType = globalStockType == null ? null : globalStockType.trim();
	}

	public String getGlobalStockCountry() {
		return globalStockCountry;
	}

	public void setGlobalStockCountry(String globalStockCountry) {
		this.globalStockCountry = globalStockCountry == null ? null : globalStockCountry.trim();
	}

	public String getGlobalStockDeliveryPlace() {
		return globalStockDeliveryPlace;
	}

	public void setGlobalStockDeliveryPlace(String globalStockDeliveryPlace) {
		this.globalStockDeliveryPlace = globalStockDeliveryPlace == null ? null : globalStockDeliveryPlace.trim();
	}

	public Integer getGlobalStockTaxFreePromise() {
		return globalStockTaxFreePromise;
	}

	public void setGlobalStockTaxFreePromise(Integer globalStockTaxFreePromise) {
		this.globalStockTaxFreePromise = globalStockTaxFreePromise;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	public String getDeleted() {
		return deleted;
	}

	public void setDeleted(String deleted) {
		this.deleted = deleted == null ? null : deleted.trim();
	}

	public String getDesc() {
		return desc;
	}

	public void setDesc(String desc) {
		this.desc = desc == null ? null : desc.trim();
	}

	public List<TopSku> getTopSkuList() {
		if (topSkuList == null) {
			topSkuList = new ArrayList<TopSku>();
		}
		return topSkuList;
	}

	public void setTopSkuList(List<TopSku> topSkuList) {
		this.topSkuList = topSkuList;
	}
}